/**
 * 格式化文件大小
 */
export function formatFileSize(bytes) {
    if (bytes === 0) return '0 Bytes'
    const k = 1024
    const sizes = ['Bytes', 'KB', 'MB', 'GB']
    const i = Math.floor(Math.log(bytes) / Math.log(k))
    return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]
}

/**
 * 获取车牌颜色对应的CSS颜色值
 */
export function getPlateColorCode(color) {
    const colorMap = {
        '蓝色': '#4A90E2',
        '黄色': '#F5D800',
        '绿色': '#7ED321',
        '白色': '#9B9B9B',
        '黑色': '#000000',
        '红色': '#D0021B'
    }
    return colorMap[color] || '#666666'
}

/**
 * 验证图片文件
 */
export function validateImageFile(file) {
    // 检查文件类型
    if (!file.type.startsWith('image/')) {
        return { valid: false, error: '请选择图片文件' }
    }

    // 检查文件大小 (最大10MB)
    if (file.size > 10 * 1024 * 1024) {
        return { valid: false, error: '文件大小不能超过10MB' }
    }

    // 检查文件格式
    const allowedTypes = ['image/jpeg', 'image/jpg', 'image/png']
    if (!allowedTypes.includes(file.type)) {
        return { valid: false, error: '仅支持JPG、JPEG、PNG格式的图片' }
    }

    return { valid: true }
}

/**
 * 创建图片预览URL
 */
export function createImagePreview(file) {
    return new Promise((resolve, reject) => {
        const reader = new FileReader()
        reader.onload = (e) => {
            if (e.target?.result) {
                resolve(e.target.result)
            } else {
                reject(new Error('无法读取文件'))
            }
        }
        reader.onerror = () => reject(new Error('文件读取失败'))
        reader.readAsDataURL(file)
    })
}